Evaluating the Impact of Thread Escape Analysis on a Memory Consistency Model-Aware Compiler
نویسندگان
چکیده
The widespread popularity of languages allowing explicitly parallel, multi-threaded programming, e.g. Java and C#, have focused attention on the issue of memory model design. The Pensieve Project is building a compiler that will enable both language designers to prototype different memory models, and optimizing compilers to adapt to different memory models. Among the key analyses required to implement this system are thread escape analysis, i.e. detecting when a referenced object is accessible by more than one thread, delay set analysis, and synchronization analysis. In this paper, we evaluate the impact of different escape analysis algorithms on the effectiveness of the Pensieve system when both delay set analysis and synchronization analysis are used. Since both analyses make use of results of escape analyses, their precison and cost is dependent on the precision of the escape analysis algorithm. It is the goal of this paper to provide a quantitative evalution of this impact.
منابع مشابه
Automatic Implementation of Programming Language Consistency Models
Concurrent threads of execution running on a shared memory system can access the same memory locations. A consistency model defines constraints on the order of these shared memory accesses. For good run-time performance, these constraints must be as few as possible. Programmers who write explicitly parallel programs must take into account the consistency model when reasoning about the behavior ...
متن کاملCompiling Multi-Threaded Object-Oriented Programs
A compiler must take special care when translating and transforming a multi-threaded program: The presence of synchronization operations and the potential of access conflicts have implications on register allocation and instruction scheduling. Moreover, a compiler might want to inhibit hardware assisted instruction reordering through memory fences, to enable a strong memory model on a platform ...
متن کاملThe Pensieve Project: A Compiler Infrastructure for Memory Models
The design of memory consistency models for both hardware and software is a difficult task. It is particularly difficult for a programming language because the target audience is much wider than the target audience for a machine language, making usability a more important criteria. Adding to this problem is the fact that the programming language community has little experience designing program...
متن کاملUsing Static and Dynamic Escape Analysis To Enable Model Reductions in Model-Checking Concurrent Object-Oriented Programs
This paper proposes several partial order reduction strategies for model-checking concurrent object-oriented software that are based on detecting heap objects that are thread-local, i.e., reachable from a single thread only. We show how thread-local information appropriate for driving these reductions can be obtained by static analysis (using adaptations of existing escape analyses). However, w...
متن کاملPsychometric Properties of the Persian Word Pairs Task for Declarative Memory Assessment
Objective: According to the declarative/procedural model, the semantic aspect of language depends on the brain structures responsible for declarative memory. The word pairs task is a common tool for evaluating declarative memory. The current study aimed to design a valid and reliable task for evaluating declarative memory in Persian children at learning and retention stages and to investigate i...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005